package com.xianyun.book.domain.gateway;

import com.xianyun.book.domain.order.Order;
import com.xianyun.book.domain.order.SalesOrder;
import java.util.List;

/**
 * @author ytt
 */
public interface OrderGateway {
    /**
     * 发布闲置订单
     * @param salesOrder 销售订单
     * @return 响应结果
     */
    String createBookOrder(SalesOrder salesOrder);

    /**
     * 创建购买订单
     * @param salesOrder 销售订单
     * @return 响应结果
     */
    String createBookSellOrder(SalesOrder salesOrder);

    /**
     * 修改订单
     * @param salesOrder 销售订单
     */
    void updateOrder(SalesOrder salesOrder);

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 响应结果
     */
    void cancelOrder(String orderId);

    /**
     * 根据订单ID获取订单详情
     * @param orderId 订单ID
     * @return 结果
     */
    Order getOrderInfoById(String orderId);

    /**
     * 根据ISBN获取在售订单
     * @param isbn 书籍的ISBN码
     * @return 结果集
     */
    List<Order> listInSellOrdersByIsbn(String isbn);
}
